Skip to content

chore(billing): claim the Play purchase hand-over - #283

Merged
aquie00t merged 1 commit into
mainfrom
chore/play-purchase-idempotency
Sep 6, 2026
Merged

chore(billing): claim the Play purchase hand-over#283
aquie00t merged 1 commit into
mainfrom
chore/play-purchase-idempotency

Conversation

@aquie00t

@aquie00t aquie00t commented Sep 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

POST /billing/play/purchases now carries idempotency: true. It was written before that plugin was on main and left with a note to come back for it; this is that.

Root cause

Nothing was broken. A retried hand-over was already harmless — the sync writes the provider's absolute state onto one row per account, so reporting the same purchase twice lands in the same place. What the claim adds is that the second attempt no longer costs a verification round trip to Google, and this is precisely the call a phone retries: it fires the moment the app comes back from the Play sheet, which is also the moment the connection is least reliable.

Tests

Unit suite unchanged and passing (1532); tsc -p tsconfig.build.json --noEmit, eslint, prettier --check clean. The behaviour is covered by the existing idempotency e2e — this only adds a route to the set that opts in.

AI Asistan: Opus 5

The endpoint was written before the idempotency plugin was on main and
carried a note to come back for it. A retried hand-over was already harmless
- the sync writes absolute state onto one row per account - but the claim
spares a second verification round trip to Google, and this is exactly the
call a phone retries: it fires the moment the app comes back from the Play
sheet.
@aquie00t
aquie00t merged commit 3dd40ff into main Sep 6, 2026
10 checks passed
@aquie00t
aquie00t deleted the chore/play-purchase-idempotency branch September 6, 2026 12:44
@github-actions

github-actions Bot commented Sep 6, 2026

Copy link
Copy Markdown

🎉 This PR is included in version 1.27.1 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant